[INFO] cloning repository https://github.com/Cklaus1/SmartRm
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/Cklaus1/SmartRm" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCklaus1%2FSmartRm", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCklaus1%2FSmartRm'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 11ab3f36ba6e30e80618f8ce550137e1560402a0
[INFO] testing Cklaus1/SmartRm against master#cced03bfd61a304243a34504618ecec86c17063f for pr-154065-2
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FCklaus1%2FSmartRm" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/Cklaus1/SmartRm
[INFO] finished tweaking git repo https://github.com/Cklaus1/SmartRm
[INFO] tweaked toml for git repo https://github.com/Cklaus1/SmartRm written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/Cklaus1/SmartRm on toolchain cced03bfd61a304243a34504618ecec86c17063f
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/Cklaus1/SmartRm already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded libredox v0.1.15
[INFO] [stderr]   Downloaded clap_complete v4.6.0
[INFO] [stderr]   Downloaded cc v1.2.58
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] c89c3f948b350333630123f320920b304cda22670d2865be6b4cd78c64f177e6
[INFO] running `Command { std: "docker" "start" "-a" "c89c3f948b350333630123f320920b304cda22670d2865be6b4cd78c64f177e6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "c89c3f948b350333630123f320920b304cda22670d2865be6b4cd78c64f177e6", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "c89c3f948b350333630123f320920b304cda22670d2865be6b4cd78c64f177e6", kill_on_drop: false }`
[INFO] [stdout] c89c3f948b350333630123f320920b304cda22670d2865be6b4cd78c64f177e6
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "build" "--frozen" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 0aa116c20b555afed1c720f7a5ee83fb7a7bf3e150b0abf6e457a691c936b567
[INFO] running `Command { std: "docker" "start" "-a" "0aa116c20b555afed1c720f7a5ee83fb7a7bf3e150b0abf6e457a691c936b567", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.184
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling cc v1.2.58
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling base64ct v1.8.3
[INFO] [stderr]    Compiling syn v2.0.117
[INFO] [stderr]    Compiling crypto-common v0.1.7
[INFO] [stderr]    Compiling clap_builder v4.6.0
[INFO] [stderr]    Compiling memchr v2.8.0
[INFO] [stderr]    Compiling fallible-iterator v0.3.0
[INFO] [stderr]    Compiling glob v0.3.3
[INFO] [stderr]    Compiling digest v0.10.7
[INFO] [stderr]    Compiling blake2 v0.10.6
[INFO] [stderr]    Compiling sha2 v0.10.9
[INFO] [stderr]    Compiling serde_json v1.0.149
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.28.0
[INFO] [stderr]    Compiling getrandom v0.3.4
[INFO] [stderr]    Compiling getrandom v0.2.17
[INFO] [stderr]    Compiling dirs-sys v0.5.0
[INFO] [stderr]    Compiling rand_core v0.9.5
[INFO] [stderr]    Compiling dirs v6.0.0
[INFO] [stderr]    Compiling rand_chacha v0.9.0
[INFO] [stderr]    Compiling rand_core v0.6.4
[INFO] [stderr]    Compiling rand v0.9.2
[INFO] [stderr]    Compiling password-hash v0.5.0
[INFO] [stderr]    Compiling argon2 v0.5.3
[INFO] [stderr]    Compiling ulid v1.2.1
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]    Compiling clap_derive v4.6.0
[INFO] [stderr]    Compiling clap v4.6.0
[INFO] [stderr]    Compiling clap_complete v4.6.0
[INFO] [stderr]    Compiling serde v1.0.228
[INFO] [stderr]    Compiling chrono v0.4.44
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling smartrm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 24.57s
[INFO] running `Command { std: "docker" "inspect" "0aa116c20b555afed1c720f7a5ee83fb7a7bf3e150b0abf6e457a691c936b567", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "0aa116c20b555afed1c720f7a5ee83fb7a7bf3e150b0abf6e457a691c936b567", kill_on_drop: false }`
[INFO] [stdout] 0aa116c20b555afed1c720f7a5ee83fb7a7bf3e150b0abf6e457a691c936b567
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen" "--no-run" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cbb694c62ce5f35aa01c2d19cc9ea88d0bcb8aaa8cb84c3a1e5a8fdf449559d4
[INFO] running `Command { std: "docker" "start" "-a" "cbb694c62ce5f35aa01c2d19cc9ea88d0bcb8aaa8cb84c3a1e5a8fdf449559d4", kill_on_drop: false }`
[INFO] [stderr]    Compiling once_cell v1.21.4
[INFO] [stderr]    Compiling getrandom v0.4.2
[INFO] [stderr]    Compiling ahash v0.8.12
[INFO] [stderr]    Compiling tempfile v3.27.0
[INFO] [stderr]    Compiling hashbrown v0.14.5
[INFO] [stderr]    Compiling hashlink v0.9.1
[INFO] [stderr]    Compiling rusqlite v0.31.0
[INFO] [stderr]    Compiling smartrm v0.1.0 (/opt/rustwide/workdir)
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 7.11s
[INFO] running `Command { std: "docker" "inspect" "cbb694c62ce5f35aa01c2d19cc9ea88d0bcb8aaa8cb84c3a1e5a8fdf449559d4", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cbb694c62ce5f35aa01c2d19cc9ea88d0bcb8aaa8cb84c3a1e5a8fdf449559d4", kill_on_drop: false }`
[INFO] [stdout] cbb694c62ce5f35aa01c2d19cc9ea88d0bcb8aaa8cb84c3a1e5a8fdf449559d4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+cced03bfd61a304243a34504618ecec86c17063f" "test" "--frozen", kill_on_drop: false }`
[INFO] [stdout] 7f4ab00bc88009d38b6a4e2dd8a70a79681d1f5f5f45db5d6656edf7c138d9ff
[INFO] running `Command { std: "docker" "start" "-a" "7f4ab00bc88009d38b6a4e2dd8a70a79681d1f5f5f45db5d6656edf7c138d9ff", kill_on_drop: false }`
[INFO] [stderr]     Finished `test` profile [unoptimized + debuginfo] target(s) in 0.10s
[INFO] [stderr]      Running unittests src/lib.rs (/opt/rustwide/target/debug/deps/smartrm-48b99f52929941ce)
[INFO] [stdout] 
[INFO] [stdout] running 141 tests
[INFO] [stdout] test commands::config::tests::config_set_rejects_unknown_key ... ok
[INFO] [stdout] test commands::config::tests::format_bytes_in_config_display ... ok
[INFO] [stdout] test commands::config::tests::parse_bool_accepts_valid_values ... ok
[INFO] [stdout] test commands::config::tests::parse_bool_rejects_invalid ... ok
[INFO] [stdout] test commands::config::tests::config_set_validates_types ... ok
[INFO] [stdout] test commands::config::tests::parse_comma_list_works ... ok
[INFO] [stdout] test commands::history::tests::bare_filename_detection ... ok
[INFO] [stdout] test commands::list::tests::format_date_fallback ... ok
[INFO] [stdout] test commands::config::tests::config_roundtrip_set_and_reload ... ok
[INFO] [stdout] test commands::list::tests::format_size_bytes ... ok
[INFO] [stdout] test commands::config::tests::config_set_valid_key_persists ... ok
[INFO] [stdout] test commands::list::tests::truncate_path_short ... ok
[INFO] [stdout] test commands::search::tests::glob_to_sql_like_asterisk ... ok
[INFO] [stdout] test commands::search::tests::glob_to_sql_like_escapes_percent ... ok
[INFO] [stdout] test commands::search::tests::glob_to_sql_like_escapes_underscore ... ok
[INFO] [stdout] test commands::search::tests::glob_to_sql_like_question_mark ... ok
[INFO] [stdout] test commands::list::tests::truncate_path_long ... ok
[INFO] [stdout] test commands::search::tests::is_glob_with_asterisk ... ok
[INFO] [stdout] test commands::search::tests::is_glob_with_question_mark ... ok
[INFO] [stdout] test commands::list::tests::format_date_rfc3339 ... ok
[INFO] [stdout] test commands::search::tests::is_not_glob_for_plain_string ... ok
[INFO] [stdout] test commands::search::tests::parse_size_gigabytes ... ok
[INFO] [stdout] test commands::search::tests::parse_size_invalid ... ok
[INFO] [stdout] test commands::search::tests::parse_size_kilobytes ... ok
[INFO] [stdout] test commands::search::tests::parse_size_megabytes ... ok
[INFO] [stdout] test gate::agent_detection::tests::ci_true_is_agent ... ok
[INFO] [stdout] test fs::restore::tests::restore_mode_sets_permissions ... ok
[INFO] [stdout] test fs::restore::tests::restore_mtime_sets_timestamp ... ok
[INFO] [stdout] test gate::agent_detection::tests::clean_environment_is_not_agent ... ok
[INFO] [stdout] test commands::search::tests::parse_size_bytes ... ok
[INFO] [stdout] test fs::hashing::tests::test_hash_reader_known_digest ... ok
[INFO] [stdout] test fs::hashing::tests::test_hash_reader_empty ... ok
[INFO] [stdout] test gate::agent_detection::tests::empty_ci_var_is_not_agent ... ok
[INFO] [stdout] test gate::agent_detection::tests::github_actions_is_agent ... ok
[INFO] [stdout] test gate::agent_detection::tests::smartrm_agent_mode_is_agent ... ok
[INFO] [stdout] test gate::agent_detection::tests::term_dumb_is_agent ... ok
[INFO] [stdout] test gate::agent_detection::tests::term_xterm_is_not_agent ... ok
[INFO] [stdout] test gate::auth::tests::phrase_generation ... ok
[INFO] [stdout] test gate::auth::tests::phrase_verification_case_sensitive ... ok
[INFO] [stdout] test gate::auth::tests::phrase_verification_exact ... ok
[INFO] [stdout] test gate::auth::tests::phrase_verification_mismatch ... ok
[INFO] [stdout] test gate::auth::tests::phrase_verification_with_whitespace ... ok
[INFO] [stdout] test gate::auth::tests::verify_passphrase_invalid_hash ... ok
[INFO] [stdout] test gate::cooldown::tests::fresh_state_not_locked ... ok
[INFO] [stdout] test gate::cooldown::tests::one_failure_not_locked ... ok
[INFO] [stdout] test gate::cooldown::tests::success_resets_state ... ok
[INFO] [stdout] test gate::cooldown::tests::three_failures_locked ... ok
[INFO] [stdout] test gate::cooldown::tests::two_failures_not_locked ... ok
[INFO] [stdout] test gate::scope_preview::tests::basic_scope_preview ... ok
[INFO] [stdout] test gate::scope_preview::tests::protected_paths_shown ... ok
[INFO] [stdout] test gate::scope_preview::tests::examples_truncated_at_five ... ok
[INFO] [stdout] test gate::scope_preview::tests::single_object_no_plural ... ok
[INFO] [stdout] test gate::cooldown::tests::cooldown_expires ... ok
[INFO] [stdout] test db::schema::tests::initialize_creates_all_tables ... ok
[INFO] [stdout] test db::operations::tests::insert_and_get_batch_items ... ok
[INFO] [stdout] test db::operations::tests::get_archive_objects_for_batch_works ... ok
[INFO] [stdout] test db::operations::tests::update_batch_status_works ... ok
[INFO] [stdout] test db::operations::tests::insert_and_get_archive_object_round_trip ... ok
[INFO] [stdout] test db::operations::tests::insert_and_get_batch_round_trip ... ok
[INFO] [stdout] test db::operations::tests::update_archive_object_state_sets_timestamp ... ok
[INFO] [stdout] test db::schema::tests::initialize_is_idempotent ... ok
[INFO] [stdout] test gate::tests::config_disabled_blocks_all ... ok
[INFO] [stdout] test db::operations::tests::get_latest_delete_batch_returns_most_recent ... ok
[INFO] [stdout] test gate::audit::tests::log_and_count_attempts ... ok
[INFO] [stdout] test gate::tests::agent_detection_disabled_allows_ci ... ok
[INFO] [stdout] test id::tests::new_id_is_lowercase_ulid ... ok
[INFO] [stdout] test gate::tests::agent_detected_denied ... ok
[INFO] [stdout] test id::tests::short_id_truncates ... ok
[INFO] [stdout] test gate::tests::audit_log_records_both_outcomes ... ok
[INFO] [stdout] test operations::cleanup::tests::parse_duration_days ... ok
[INFO] [stdout] test operations::cleanup::tests::parse_duration_hours ... ok
[INFO] [stdout] test operations::cleanup::tests::parse_duration_invalid ... ok
[INFO] [stdout] test id::tests::short_id_short_input ... ok
[INFO] [stdout] test operations::cleanup::tests::parse_duration_zero ... ok
[INFO] [stdout] test gate::tests::correct_phrase_allowed ... ok
[INFO] [stdout] test gate::tests::simple_confirm_no ... ok
[INFO] [stdout] test gate::tests::config_interactive_only_yes ... ok
[INFO] [stdout] test operations::delete::tests::format_human_empty_on_all_success ... ok
[INFO] [stdout] test gate::tests::config_interactive_only_no ... ok
[INFO] [stdout] test operations::delete::tests::format_human_only_shows_failures ... ok
[INFO] [stdout] test gate::tests::elevated_wrong_elevated_phrase_denied ... ok
[INFO] [stdout] test gate::tests::simple_confirm_yes ... ok
[INFO] [stdout] test operations::cleanup::tests::cleanup_empty_archive ... ok
[INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_first_conflict ... ok
[INFO] [stdout] test operations::delete::tests::dir_flag_rejects_nonempty_directory ... ok
[INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_multiple_conflicts ... ok
[INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_no_conflict ... ok
[INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_no_extension ... ok
[INFO] [stdout] test gate::tests::no_tty_denied ... ok
[INFO] [stdout] test gate::tests::elevated_correct_phrase_then_confirmation ... ok
[INFO] [stdout] test gate::tests::wrong_phrase_denied ... ok
[INFO] [stdout] test operations::cleanup::tests::cleanup_filters_expired_only ... ok
[INFO] [stdout] test operations::delete::tests::missing_file_without_force_fails ... ok
[INFO] [stdout] test output::human::tests::format_bytes_gb ... ok
[INFO] [stdout] test output::human::tests::format_bytes_kb ... ok
[INFO] [stdout] test output::human::tests::format_bytes_mb ... ok
[INFO] [stdout] test policy::classifier::tests::classify_credential_file_as_protected ... ok
[INFO] [stdout] test policy::classifier::tests::classify_dot_env_local_as_protected ... ok
[INFO] [stdout] test output::human::tests::format_bytes_small ... ok
[INFO] [stdout] test policy::classifier::tests::classify_emacs_autosave_as_temp ... ok
[INFO] [stdout] test policy::classifier::tests::classify_dot_env_as_protected ... ok
[INFO] [stdout] test policy::classifier::tests::classify_git_dir_as_warning ... ok
[INFO] [stdout] test policy::classifier::tests::classify_home_as_warning ... ok
[INFO] [stdout] test policy::classifier::tests::classify_normal_file_as_safe ... ok
[INFO] [stdout] test operations::cleanup::tests::cleanup_skips_protected ... ok
[INFO] [stdout] test operations::delete::tests::force_skips_missing_files ... ok
[INFO] [stdout] test policy::classifier::tests::classify_object_file_as_build ... ok
[INFO] [stdout] test policy::classifier::tests::classify_pem_as_protected ... ok
[INFO] [stdout] test policy::classifier::tests::classify_pycache_as_build ... ok
[INFO] [stdout] test policy::classifier::tests::classify_node_modules_as_build ... ok
[INFO] [stdout] test operations::delete::tests::directory_without_r_or_d_fails ... ok
[INFO] [stdout] test operations::delete::tests::dir_flag_allows_empty_directory ... ok
[INFO] [stdout] test policy::classifier::tests::classify_python_file_as_content ... ok
[INFO] [stdout] test policy::classifier::tests::classify_root_as_blocked ... ok
[INFO] [stdout] test policy::classifier::tests::classify_rust_file_as_content ... ok
[INFO] [stdout] test policy::classifier::tests::classify_ssh_dir_as_warning ... ok
[INFO] [stdout] test policy::classifier::tests::classify_system_dir_as_warning ... ok
[INFO] [stdout] test policy::classifier::tests::classify_secret_file_as_protected ... ok
[INFO] [stdout] test policy::classifier::tests::classify_tilde_backup_as_temp ... ok
[INFO] [stdout] test policy::classifier::tests::classify_tmp_file_as_temp ... ok
[INFO] [stdout] test policy::config::tests::archive_dir_uses_data_dir ... ok
[INFO] [stdout] test operations::restore::tests::resolve_target_no_match ... ok
[INFO] [stdout] test policy::config::tests::config_deserializes_from_partial_json ... ok
[INFO] [stdout] test policy::config::tests::db_path_uses_data_dir ... ok
[INFO] [stdout] test policy::config::tests::default_config_has_sane_defaults ... ok
[INFO] [stdout] test policy::config::tests::resolve_data_dir_respects_archive_root ... ok
[INFO] [stdout] test policy::config::tests::resolve_data_dir_respects_env ... ok
[INFO] [stdout] test policy::resolver::tests::build_tag_sets_cleanup_intent ... ok
[INFO] [stdout] test policy::resolver::tests::config_ttl_is_propagated ... ok
[INFO] [stdout] test policy::resolver::tests::content_tag_has_no_intent ... ok
[INFO] [stdout] test policy::resolver::tests::permanent_flag_overrides_config ... ok
[INFO] [stdout] test policy::resolver::tests::default_policy_uses_archive_mode ... ok
[INFO] [stdout] test policy::resolver::tests::temp_tag_sets_temp_intent ... ok
[INFO] [stdout] test operations::purge::tests::purge_all_force_transitions_to_purged ... ok
[INFO] [stdout] test operations::purge::tests::purge_empty_archive ... ok
[INFO] [stdout] test operations::restore::tests::resolve_target_by_id_exact_match ... ok
[INFO] [stdout] test operations::purge::tests::purge_requires_all_or_force ... ok
[INFO] [stdout] test operations::restore::tests::resolve_target_by_prefix ... ok
[INFO] [stdout] test operations::restore::tests::restore_filters_non_restorable_states ... ok
[INFO] [stdout] test commands::config::tests::hash_and_verify_passphrase_roundtrip ... ok
[INFO] [stdout] test gate::auth::tests::passphrase_hash_and_verify ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 141 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 3.09s
[INFO] [stdout] 
[INFO] [stderr]      Running unittests src/main.rs (/opt/rustwide/target/debug/deps/smartrm-e4b95429182f0dde)
[INFO] [stdout] 
[INFO] [stdout] running 141 tests
[INFO] [stdout] test commands::config::tests::config_roundtrip_set_and_reload ... ok
[INFO] [stdout] test commands::config::tests::config_set_valid_key_persists ... ok
[INFO] [stdout] test commands::config::tests::config_set_validates_types ... ok
[INFO] [stdout] test commands::config::tests::parse_bool_accepts_valid_values ... ok
[INFO] [stdout] test commands::config::tests::config_set_rejects_unknown_key ... ok
[INFO] [stdout] test commands::config::tests::parse_bool_rejects_invalid ... ok
[INFO] [stdout] test commands::config::tests::parse_comma_list_works ... ok
[INFO] [stdout] test commands::history::tests::bare_filename_detection ... ok
[INFO] [stdout] test commands::config::tests::format_bytes_in_config_display ... ok
[INFO] [stdout] test commands::list::tests::format_date_fallback ... ok
[INFO] [stdout] test commands::list::tests::format_date_rfc3339 ... ok
[INFO] [stdout] test commands::list::tests::truncate_path_short ... ok
[INFO] [stdout] test commands::search::tests::glob_to_sql_like_asterisk ... ok
[INFO] [stdout] test commands::list::tests::truncate_path_long ... ok
[INFO] [stdout] test commands::list::tests::format_size_bytes ... ok
[INFO] [stdout] test commands::search::tests::glob_to_sql_like_escapes_percent ... ok
[INFO] [stdout] test commands::search::tests::glob_to_sql_like_escapes_underscore ... ok
[INFO] [stdout] test commands::search::tests::glob_to_sql_like_question_mark ... ok
[INFO] [stdout] test commands::search::tests::is_glob_with_asterisk ... ok
[INFO] [stdout] test commands::search::tests::is_glob_with_question_mark ... ok
[INFO] [stdout] test commands::search::tests::parse_size_bytes ... ok
[INFO] [stdout] test commands::search::tests::parse_size_gigabytes ... ok
[INFO] [stdout] test commands::search::tests::parse_size_invalid ... ok
[INFO] [stdout] test commands::search::tests::parse_size_kilobytes ... ok
[INFO] [stdout] test commands::search::tests::parse_size_megabytes ... ok
[INFO] [stdout] test commands::search::tests::is_not_glob_for_plain_string ... ok
[INFO] [stdout] test fs::hashing::tests::test_hash_reader_empty ... ok
[INFO] [stdout] test gate::agent_detection::tests::clean_environment_is_not_agent ... ok
[INFO] [stdout] test gate::agent_detection::tests::ci_true_is_agent ... ok
[INFO] [stdout] test fs::hashing::tests::test_hash_reader_known_digest ... ok
[INFO] [stdout] test fs::restore::tests::restore_mode_sets_permissions ... ok
[INFO] [stdout] test fs::restore::tests::restore_mtime_sets_timestamp ... ok
[INFO] [stdout] test gate::agent_detection::tests::empty_ci_var_is_not_agent ... ok
[INFO] [stdout] test gate::agent_detection::tests::smartrm_agent_mode_is_agent ... ok
[INFO] [stdout] test gate::agent_detection::tests::term_dumb_is_agent ... ok
[INFO] [stdout] test gate::agent_detection::tests::term_xterm_is_not_agent ... ok
[INFO] [stdout] test gate::auth::tests::phrase_verification_case_sensitive ... ok
[INFO] [stdout] test gate::auth::tests::phrase_generation ... ok
[INFO] [stdout] test gate::auth::tests::phrase_verification_exact ... ok
[INFO] [stdout] test gate::agent_detection::tests::github_actions_is_agent ... ok
[INFO] [stdout] test gate::auth::tests::phrase_verification_mismatch ... ok
[INFO] [stdout] test gate::auth::tests::phrase_verification_with_whitespace ... ok
[INFO] [stdout] test gate::auth::tests::verify_passphrase_invalid_hash ... ok
[INFO] [stdout] test gate::cooldown::tests::fresh_state_not_locked ... ok
[INFO] [stdout] test gate::cooldown::tests::one_failure_not_locked ... ok
[INFO] [stdout] test gate::cooldown::tests::success_resets_state ... ok
[INFO] [stdout] test gate::cooldown::tests::two_failures_not_locked ... ok
[INFO] [stdout] test gate::cooldown::tests::three_failures_locked ... ok
[INFO] [stdout] test gate::scope_preview::tests::basic_scope_preview ... ok
[INFO] [stdout] test gate::scope_preview::tests::examples_truncated_at_five ... ok
[INFO] [stdout] test gate::scope_preview::tests::protected_paths_shown ... ok
[INFO] [stdout] test gate::scope_preview::tests::single_object_no_plural ... ok
[INFO] [stdout] test gate::cooldown::tests::cooldown_expires ... ok
[INFO] [stdout] test db::operations::tests::get_latest_delete_batch_returns_most_recent ... ok
[INFO] [stdout] test db::operations::tests::insert_and_get_archive_object_round_trip ... ok
[INFO] [stdout] test db::operations::tests::insert_and_get_batch_items ... ok
[INFO] [stdout] test db::operations::tests::update_batch_status_works ... ok
[INFO] [stdout] test gate::tests::agent_detected_denied ... ok
[INFO] [stdout] test db::schema::tests::initialize_creates_all_tables ... ok
[INFO] [stdout] test db::schema::tests::initialize_is_idempotent ... ok
[INFO] [stdout] test db::operations::tests::insert_and_get_batch_round_trip ... ok
[INFO] [stdout] test gate::tests::audit_log_records_both_outcomes ... ok
[INFO] [stdout] test db::operations::tests::get_archive_objects_for_batch_works ... ok
[INFO] [stdout] test id::tests::new_id_is_lowercase_ulid ... ok
[INFO] [stdout] test db::operations::tests::update_archive_object_state_sets_timestamp ... ok
[INFO] [stdout] test id::tests::short_id_short_input ... ok
[INFO] [stdout] test id::tests::short_id_truncates ... ok
[INFO] [stdout] test gate::audit::tests::log_and_count_attempts ... ok
[INFO] [stdout] test gate::tests::agent_detection_disabled_allows_ci ... ok
[INFO] [stdout] test operations::cleanup::tests::parse_duration_days ... ok
[INFO] [stdout] test operations::cleanup::tests::parse_duration_hours ... ok
[INFO] [stdout] test operations::cleanup::tests::parse_duration_invalid ... ok
[INFO] [stdout] test operations::cleanup::tests::parse_duration_zero ... ok
[INFO] [stdout] test gate::tests::config_disabled_blocks_all ... ok
[INFO] [stdout] test gate::tests::config_interactive_only_no ... ok
[INFO] [stdout] test gate::tests::correct_phrase_allowed ... ok
[INFO] [stdout] test gate::tests::config_interactive_only_yes ... ok
[INFO] [stdout] test operations::delete::tests::format_human_empty_on_all_success ... ok
[INFO] [stdout] test operations::delete::tests::format_human_only_shows_failures ... ok
[INFO] [stdout] test gate::tests::elevated_correct_phrase_then_confirmation ... ok
[INFO] [stdout] test gate::tests::simple_confirm_no ... ok
[INFO] [stdout] test gate::tests::wrong_phrase_denied ... ok
[INFO] [stdout] test gate::tests::no_tty_denied ... ok
[INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_first_conflict ... ok
[INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_multiple_conflicts ... ok
[INFO] [stdout] test gate::tests::simple_confirm_yes ... ok
[INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_no_conflict ... ok
[INFO] [stdout] test operations::restore::tests::find_non_conflicting_name_no_extension ... ok
[INFO] [stdout] test operations::cleanup::tests::cleanup_empty_archive ... ok
[INFO] [stdout] test operations::cleanup::tests::cleanup_filters_expired_only ... ok
[INFO] [stdout] test operations::delete::tests::dir_flag_rejects_nonempty_directory ... ok
[INFO] [stdout] test output::human::tests::format_bytes_gb ... ok
[INFO] [stdout] test output::human::tests::format_bytes_kb ... ok
[INFO] [stdout] test output::human::tests::format_bytes_mb ... ok
[INFO] [stdout] test output::human::tests::format_bytes_small ... ok
[INFO] [stdout] test operations::cleanup::tests::cleanup_skips_protected ... ok
[INFO] [stdout] test policy::classifier::tests::classify_dot_env_as_protected ... ok
[INFO] [stdout] test policy::classifier::tests::classify_dot_env_local_as_protected ... ok
[INFO] [stdout] test operations::delete::tests::directory_without_r_or_d_fails ... ok
[INFO] [stdout] test policy::classifier::tests::classify_emacs_autosave_as_temp ... ok
[INFO] [stdout] test policy::classifier::tests::classify_git_dir_as_warning ... ok
[INFO] [stdout] test policy::classifier::tests::classify_home_as_warning ... ok
[INFO] [stdout] test policy::classifier::tests::classify_node_modules_as_build ... ok
[INFO] [stdout] test policy::classifier::tests::classify_normal_file_as_safe ... ok
[INFO] [stdout] test policy::classifier::tests::classify_object_file_as_build ... ok
[INFO] [stdout] test policy::classifier::tests::classify_pem_as_protected ... ok
[INFO] [stdout] test policy::classifier::tests::classify_pycache_as_build ... ok
[INFO] [stdout] test policy::classifier::tests::classify_python_file_as_content ... ok
[INFO] [stdout] test policy::classifier::tests::classify_root_as_blocked ... ok
[INFO] [stdout] test policy::classifier::tests::classify_secret_file_as_protected ... ok
[INFO] [stdout] test policy::classifier::tests::classify_ssh_dir_as_warning ... ok
[INFO] [stdout] test operations::delete::tests::dir_flag_allows_empty_directory ... ok
[INFO] [stdout] test policy::classifier::tests::classify_tilde_backup_as_temp ... ok
[INFO] [stdout] test policy::classifier::tests::classify_tmp_file_as_temp ... ok
[INFO] [stdout] test operations::delete::tests::force_skips_missing_files ... ok
[INFO] [stdout] test policy::config::tests::config_deserializes_from_partial_json ... ok
[INFO] [stdout] test policy::config::tests::db_path_uses_data_dir ... ok
[INFO] [stdout] test policy::config::tests::default_config_has_sane_defaults ... ok
[INFO] [stdout] test policy::config::tests::resolve_data_dir_respects_archive_root ... ok
[INFO] [stdout] test policy::config::tests::resolve_data_dir_respects_env ... ok
[INFO] [stdout] test policy::resolver::tests::build_tag_sets_cleanup_intent ... ok
[INFO] [stdout] test policy::resolver::tests::config_ttl_is_propagated ... ok
[INFO] [stdout] test policy::resolver::tests::content_tag_has_no_intent ... ok
[INFO] [stdout] test policy::resolver::tests::default_policy_uses_archive_mode ... ok
[INFO] [stdout] test operations::purge::tests::purge_all_force_transitions_to_purged ... ok
[INFO] [stdout] test policy::resolver::tests::permanent_flag_overrides_config ... ok
[INFO] [stdout] test policy::resolver::tests::temp_tag_sets_temp_intent ... ok
[INFO] [stdout] test operations::purge::tests::purge_empty_archive ... ok
[INFO] [stdout] test operations::purge::tests::purge_requires_all_or_force ... ok
[INFO] [stdout] test operations::delete::tests::missing_file_without_force_fails ... ok
[INFO] [stdout] test operations::restore::tests::resolve_target_by_id_exact_match ... ok
[INFO] [stdout] test gate::tests::elevated_wrong_elevated_phrase_denied ... ok
[INFO] [stdout] test operations::restore::tests::resolve_target_no_match ... ok
[INFO] [stdout] test operations::restore::tests::restore_filters_non_restorable_states ... ok
[INFO] [stdout] test policy::classifier::tests::classify_rust_file_as_content ... ok
[INFO] [stdout] test policy::classifier::tests::classify_credential_file_as_protected ... ok
[INFO] [stdout] test operations::restore::tests::resolve_target_by_prefix ... ok
[INFO] [stdout] test policy::config::tests::archive_dir_uses_data_dir ... ok
[INFO] [stdout] test policy::classifier::tests::classify_system_dir_as_warning ... ok
[INFO] [stdout] test gate::auth::tests::passphrase_hash_and_verify ... ok
[INFO] [stdout] test commands::config::tests::hash_and_verify_passphrase_roundtrip ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 141 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.92s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/db_error_tests.rs (/opt/rustwide/target/debug/deps/db_error_tests-0c080fe8a919c43d)
[INFO] [stdout] 
[INFO] [stdout] running 6 tests
[INFO] [stdout] test transaction_rollback_on_error ... ok
[INFO] [stdout] test fk_constraint_violation_on_missing_batch ... ok
[INFO] [stdout] test duplicate_pk_violation ... ok
[INFO] [stdout] test state_transition_updates_correctly ... ok
[INFO] [stdout] test invalid_state_value_rejected_by_check_constraint ... ok
[INFO] [stdout] test concurrent_writes_on_file_db ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 6 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/e2e_cli.rs (/opt/rustwide/target/debug/deps/e2e_cli-a0a497998dbe1c00)
[INFO] [stdout] 
[INFO] [stdout] running 44 tests
[INFO] [stdout] test e2e_config_shows_defaults ... ok
[INFO] [stdout] test e2e_delete_directory ... ok
[INFO] [stdout] test e2e_completions_bash ... ok
[INFO] [stdout] test e2e_delete_directory_without_r_fails ... ok
[INFO] [stdout] test e2e_delete_json_output ... ok
[INFO] [stdout] test e2e_delete_git_dir_warns ... ok
[INFO] [stdout] test e2e_delete_nonexistent_with_force ... ok
[INFO] [stdout] test e2e_delete_multiple_files ... ok
[INFO] [stdout] test e2e_delete_nonexistent_file_fails ... ok
[INFO] [stdout] test e2e_delete_root_blocked ... ok
[INFO] [stdout] test e2e_delete_broken_symlink ... ok
[INFO] [stdout] test e2e_cleanup_dry_run ... ok
[INFO] [stdout] test e2e_config_set_and_show ... ok
[INFO] [stdout] test e2e_cleanup_dryrun_not_blocked ... ok
[INFO] [stdout] test e2e_cleanup_actually_purges_is_gated ... ok
[INFO] [stdout] test e2e_delete_single_file ... ok
[INFO] [stdout] test e2e_explain_policy ... ok
[INFO] [stdout] test e2e_delete_with_verbose ... ok
[INFO] [stdout] test e2e_cleanup_blocked_without_tty ... ok
[INFO] [stdout] test e2e_delete_symlink ... ok
[INFO] [stdout] test e2e_exit_code_2_on_empty_search ... ok
[INFO] [stdout] test e2e_exit_code_0_on_success ... ok
[INFO] [stdout] test e2e_double_dash_literal_filename ... ok
[INFO] [stdout] test e2e_list_empty ... ok
[INFO] [stdout] test e2e_empty_dir_with_d_flag ... ok
[INFO] [stdout] test e2e_exit_code_1_on_error ... ok
[INFO] [stdout] test e2e_list_json_output ... ok
[INFO] [stdout] test e2e_list_shows_archived ... ok
[INFO] [stdout] test e2e_list_with_state_filter ... ok
[INFO] [stdout] test e2e_permanent_blocked_without_tty ... ok
[INFO] [stdout] test e2e_normal_archive_not_blocked ... ok
[INFO] [stdout] test e2e_search_no_results ... ok
[INFO] [stdout] test e2e_permanent_force_still_blocked_without_tty ... ok
[INFO] [stdout] test e2e_history_shows_versions ... ok
[INFO] [stdout] test e2e_search_substring ... ok
[INFO] [stdout] test e2e_purge_expired_blocked_without_tty ... ok
[INFO] [stdout] test e2e_search_glob ... ok
[INFO] [stdout] test e2e_stats_shows_counts ... ok
[INFO] [stdout] test e2e_purge_blocked_without_tty ... ok
[INFO] [stdout] test e2e_undo_nothing_to_undo ... ok
[INFO] [stdout] test e2e_restore_to_alternate_path ... ok
[INFO] [stdout] test e2e_restore_by_short_id ... ok
[INFO] [stdout] test e2e_timeline_shows_batches ... ok
[INFO] [stdout] test e2e_undo_restores_file ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 44 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.21s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/lifecycle_scenarios.rs (/opt/rustwide/target/debug/deps/lifecycle_scenarios-801291b4959c6a4f)
[INFO] [stdout] 
[INFO] [stdout] running 5 tests
[INFO] [stdout] test scenario_5_restore_to_alternate_path ... ok
[INFO] [stdout] test scenario_3_delete_cleanup_restore_fails ... ok
[INFO] [stdout] test scenario_1_delete_restore_delete_restore_second_version ... ok
[INFO] [stdout] test scenario_2_delete_partial_restore_then_undo ... ok
[INFO] [stdout] test scenario_4_multi_file_delete_and_undo ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 5 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.04s
[INFO] [stdout] 
[INFO] [stderr]      Running tests/user_journeys.rs (/opt/rustwide/target/debug/deps/user_journeys-debb0a2718285135)
[INFO] [stdout] 
[INFO] [stdout] running 10 tests
[INFO] [stdout] test journey_restore_to_different_location ... ok
[INFO] [stdout] test journey_first_time_setup ... ok
[INFO] [stdout] test journey_partial_failure_and_recovery ... ok
[INFO] [stdout] test journey_delete_entire_project_and_undo ... ok
[INFO] [stdout] test journey_conflict_resolution ... ok
[INFO] [stdout] test journey_accidental_delete_and_immediate_undo ... ok
[INFO] [stdout] test journey_multiple_versions_of_same_file ... ok
[INFO] [stdout] test journey_restore_everything ... ok
[INFO] [stdout] test journey_archive_cleanup ... ok
[INFO] [stdout] test journey_find_old_file_and_restore_by_id ... ok
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 10 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.08s
[INFO] [stdout] 
[INFO] [stderr]    Doc-tests smartrm
[INFO] [stdout] 
[INFO] [stdout] running 0 tests
[INFO] [stdout] 
[INFO] [stdout] test result: ok. 0 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.00s
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "7f4ab00bc88009d38b6a4e2dd8a70a79681d1f5f5f45db5d6656edf7c138d9ff", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7f4ab00bc88009d38b6a4e2dd8a70a79681d1f5f5f45db5d6656edf7c138d9ff", kill_on_drop: false }`
[INFO] [stdout] 7f4ab00bc88009d38b6a4e2dd8a70a79681d1f5f5f45db5d6656edf7c138d9ff
